# -*- coding: utf-8 -*-
################################################################################
#
# Copyright (c) 2014 Baidu.com, Inc. All Rights Reserved
#
################################################################################
"""
该模块为需要抓取的所有url队列管理模块，利用到单例设计模式。

使用的时候直接 from crawl_queue_manage import url_queue

然后操作 url_queue 这个队列即可

Authors: caopeirui(caopeirui@baidu.com)
Date:	2018/04/19 20:10:41
"""
import threading
import queue

class UrlQueue(object):
    _instance_lock = threading.Lock()

    def __init__(self):
        self.url_queue = queue.Queue()

    def __new__(cls, *args, **kwargs):
        if not hasattr(UrlQueue, "_instance"):
            with UrlQueue._instance_lock:
                if not hasattr(UrlQueue, "_instance"):
                    UrlQueue._instance = object.__new__(cls)
        return UrlQueue._instance

url_queue = UrlQueue().url_queue

